
package com.demo.msg;

import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.kit.JsonKit;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.ehcache.CacheInterceptor;
import com.jfinal.plugin.ehcache.CacheKit;
import com.jfinal.render.JsonRender;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class WxMessageController extends Controller {

    public void index() {
        render("/WEB-INF/view/weixin/msg/wxMessage.html");
    }
/**
 * add
 */
    public void  newModes() {
    String   id=getPara("id");
//    List<Record> newlist = Db.find("select  * from     where    id=  '" + id + "'");
        List<Record> newlist =  WxMessage.dao.findAlls(  " id=  '" + id + "'") ;
        List<Record> types =  Msgtype.dao.findAlls(  " yxbz=1") ;//type
        setAttr("newlist",newlist);
        setAttr("types",types);
        render("/WEB-INF/view/weixin/msg/form.html");
    }

    /**
     * 在增加了SearchSql拦截之后，就可以根据页面的配置信息
     * 自动装配查询语句，并放入request中，可以通过getAttr(Const.SEARCH_SQL)函数获取到
     * 根据实际需要自动组装到sql语句中
     */
	public void query() {
        int pageNumber = getParaToInt("page");
        int pageSize = getParaToInt("rows");
        String where ="";
        Page<WxMessage> page = WxMessage.dao.page(pageNumber, pageSize, where);
        Map root = new HashMap();
        /// jqgrid用 分页显示
        root.put("total", page.getTotalPage());
        root.put("page", page.getPageNumber());
        root.put("records", page.getTotalRow());
        root.put("rows", page.getList());
        renderJson(root);
	}
	/**
     * save
     * @param
     * @return
     */
	public void save() {
        String description=getPara("description");
        String where =  " description=  '"+description + "'";
        if(max(where)){
     //       renderJson("关键字重复！");
			render(new JsonRender(JsonKit.toJson("关键字重复！")).forIE());
        }  else {
                if(getModel(WxMessage.class).save()){
         //           renderJson("保存成功");
        			render(new JsonRender(JsonKit.toJson("保存成功！")).forIE());

                }else{
             //       renderJson("保存失败");
        			render(new JsonRender(JsonKit.toJson("保存失败！")).forIE());

                }
        }
        //更新缓存
        message();
    }
	
	/**
     * Post表单数据
     *
     * @param
     * @return
     */
	public void update() {
        String description=getPara("description") ;
        String id=getPara("id");
        String where =" description=  '"+description + "' and id !='"+id +"'";
        if(max(where)){
			render(new JsonRender(JsonKit.toJson("关键字重复！")).forIE());

        } else {
            if(getModel(WxMessage.class).update()){
            //    renderJson("修改成功");
    			render(new JsonRender(JsonKit.toJson("修改成功！")).forIE());

            }else{
               // renderJson("修改失败");
    			render(new JsonRender(JsonKit.toJson("修改失败！")).forIE());

            }
        }
        //更新缓存
        message();

    }

    /**
     * 删除数据
     */
	public void delete() {
        if(WxMessage.dao.deleteById(getPara("id"))){
      //      renderJson("删除成功");
			render(new JsonRender(JsonKit.toJson("删除成功！")).forIE());

        }else{
         //   renderJson("删除失败");
			render(new JsonRender(JsonKit.toJson("删除失败！")).forIE());

        }
        message();
	}
	@Before(CacheInterceptor.class)
    private static void message(){
        //更新缓存
        List<Record>  _list = new ArrayList();
        _list   =WxMessage.dao.findAlls(  "") ;
        CacheKit.put("WxMessage", "WxMessage", _list);
    }
    /**
     * 关键字去重复
     * @param where
     * @return  boolean
     */
    private  boolean max(String where){
        List<Record> types =  WxMessage.dao.findAlls(where) ;//type
        if(types.size()>0){
            return true  ;
        } else {
            return false;
        }
    }
}

